Operating systems for devices such as personal computers (“PCs”), personal digital assistants (“PDAs”), embedded devices, etc., contain timer facilities that implement various timer algorithms. The purpose of the timer facilities is to simply keep track of the amount of time that has expired since the occurrence of a specified event. Many applications running on the devices contain algorithms in which the notion of time or relative time is integral to the function of the application. Examples of such algorithms include scheduling algorithms, algorithms which control packet lifetimes in computer networks and process control algorithms. Other functions for which time is important may include failure recovery and alarm status. These applications may use the operating system timer facility for these algorithms.
Current timer facilities add a significant amount of overhead to the device when it is running. This overhead may result from the need to perform multiplication or division in order to keep track of the time. In addition, the timer facilities may require the use of a math coprocessor which may not be available in every device. Real time systems may implement numerous alarms, for example, a typical real time network communication protocol may have thousands of alarm settings for the various communications it is handling. Each of these alarm settings may have a separate instance of the timer facility to keep track of the time that has elapsed since an event that is important for that particular alarm. Thus, the device hardware (e.g., processor, random access memory (“RAM”), etc.) is burdened with the numerous instances of the high overhead timer facilities leading to lower overall performance levels for the device.